gtk_widget_destroy (window);
}
+static void
+test_show_hide (void)
+{
+ GtkWidget *window;
+ gint w, h, w1, h1;
+
+ g_test_bug ("696882");
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w, &h);
+
+ gtk_widget_hide (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_widget_destroy (window);
+}
+
+static void
+test_show_hide2 (void)
+{
+ GtkWidget *window;
+ gint x, y, w, h, w1, h1;
+
+ g_test_bug ("696882");
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_position (GTK_WINDOW (window), &x, &y);
+ gtk_window_get_size (GTK_WINDOW (window), &w, &h);
+ gtk_widget_hide (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_window_move (GTK_WINDOW (window), x, y);
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_widget_destroy (window);
+}
+
+static void
+test_show_hide3 (void)
+{
+ GtkWidget *window;
+ gint x, y, w, h, w1, h1;
+
+ g_test_bug ("696882");
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
+
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_position (GTK_WINDOW (window), &x, &y);
+ gtk_window_get_size (GTK_WINDOW (window), &w, &h);
+ gtk_widget_hide (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_window_move (GTK_WINDOW (window), x, y);
+ gtk_widget_show (window);
+
+ g_timeout_add (100, stop_main, NULL);
+ gtk_main ();
+
+ gtk_window_get_size (GTK_WINDOW (window), &w1, &h1);
+ g_assert_cmpint (w, ==, w1);
+ g_assert_cmpint (h, ==, h1);
+
+ gtk_widget_destroy (window);
+}
+
int
main (int argc, char *argv[])
{
gint i;
gtk_test_init (&argc, &argv);
+ g_test_bug_base ("http://bugzilla.gnome.org/");
for (i = 0; i < argc; i++)
{
g_test_add_func ("/window/default-size", test_default_size);
g_test_add_func ("/window/resize", test_resize);
+ g_test_add_func ("/window/show-hide", test_show_hide);
+ g_test_add_func ("/window/show-hide2", test_show_hide2);
+ g_test_add_func ("/window/show-hide3", test_show_hide3);
g_test_add_func ("/window/resize-popup", test_resize_popup);
return g_test_run ();